// removebg.js
Page({
  data: {
    imagePath: '',
    processedImagePath: '',
    processing: false,
    backgrounds: [
      { color: 'transparent', name: '透明背景' },
      { color: '#FFFFFF', name: '白色' },
      { color: '#FF0000', name: '红色' },
      { color: '#0000FF', name: '蓝色' },
      { color: '#00FF00', name: '绿色' }
    ],
    selectedBg: 'transparent'
  },

  onLoad() {
    console.log('抠图去背景页面加载');
  },

  // 选择图片
  chooseImage() {
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        const tempFilePath = res.tempFiles[0].tempFilePath;
        
        this.setData({
          imagePath: tempFilePath,
          processedImagePath: ''
        });
        
        console.log('选择的图片：', tempFilePath);
      }
    });
  },

  // 选择背景色
  selectBackground(e) {
    const color = e.currentTarget.dataset.color;
    this.setData({
      selectedBg: color
    });
    
    // 如果已经处理过图片，应用新背景色
    if (this.data.processedImagePath) {
      this.applyBackground(this.data.processedImagePath, color);
    }
  },

  // 处理图片（抠图去背景）
  processImage() {
    if (!this.data.imagePath) {
      wx.showToast({
        title: '请先选择图片',
        icon: 'none'
      });
      return;
    }

    this.setData({
      processing: true
    });

    // 这里应该调用实际的抠图API，这里使用模拟处理
    // 注意：实际项目中应该使用专业的抠图API或服务
    setTimeout(() => {
      // 模拟抠图处理完成
      this.simulateRemoveBackground();
    }, 2000);
  },

  // 模拟抠图处理（实际项目中应替换为真实API）
  simulateRemoveBackground() {
    // 在实际项目中，这里应该调用专业的抠图API
    // 例如百度AI、腾讯云AI或其他第三方服务
    
    // 模拟处理结果
    const processedPath = this.data.imagePath; // 实际应该是处理后的新图片路径
    
    this.setData({
      processedImagePath: processedPath,
      processing: false
    });
    
    // 应用选定的背景色
    this.applyBackground(processedPath, this.data.selectedBg);
    
    wx.showToast({
      title: '处理成功',
      icon: 'success'
    });
  },

  // 应用背景色（实际项目中应替换为真实实现）
  applyBackground(imagePath, bgColor) {
    console.log('应用背景色：', bgColor, '到图片：', imagePath);
    // 实际项目中，这里应该将抠图结果与选定背景色合成
  },

  // 保存处理后的图片
  saveImage() {
    if (!this.data.processedImagePath) {
      wx.showToast({
        title: '请先处理图片',
        icon: 'none'
      });
      return;
    }

    wx.saveImageToPhotosAlbum({
      filePath: this.data.processedImagePath,
      success: () => {
        wx.showToast({
          title: '保存成功',
          icon: 'success'
        });
      },
      fail: (err) => {
        console.error('保存失败：', err);
        
        if (err.errMsg.indexOf('auth deny') >= 0) {
          wx.showModal({
            title: '提示',
            content: '需要您授权保存图片到相册',
            confirmText: '去授权',
            success: (res) => {
              if (res.confirm) {
                wx.openSetting({
                  success: (settingRes) => {
                    console.log('设置结果：', settingRes);
                  }
                });
              }
            }
          });
        } else {
          wx.showToast({
            title: '保存失败',
            icon: 'none'
          });
        }
      }
    });
  }
});
